<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // setCookie("a", "10")
    // setCookie("b", "20", {
    //     path:"/abc"
    // })
    // setCookie("c", "30", {
    //     expires:3
    // })
    // setCookie("d", "40", {
    //     path:"/abc",
    //     expires:3
    // })

    // 增&改
    function setCookie(key, val, ops={}){
        // 处理路径的默认值
        const p = ops.path ? ";path="+ops.path : "";
        // 处理过期时间的默认值
        let e = "";
        if(ops.expires){
            const d = new Date();
            d.setDate(d.getDate() + ops.expires);
            e = ";expires=" + d;
        }
        // 设置cookie
        document.cookie = `${key}=${val}${p}${e}`; 
    }

    // 查
    // console.log(getCookie("name"));
    // console.log(getCookie("a"));
    // console.log(getCookie("b"));
    // console.log(getCookie("c"));

    function getCookie(key){
        // 解析字符成数组
        const arr = document.cookie.split("; ");
        // 遍历数组
        for(let i=0;i<arr.length;i++){
            // 解析数组中的字符数据
            const a = arr[i].split("=");
            // 判断
            if(a[0] === key){
                // 返回符合要求的数据
                return a[1];
            }
        }
        // 循环结束后，没有判断成功，就返回空字符
        return "";
    }

    // 删
    // removeCookie("c");
    // removeCookie("d", {
    //     path:"/abc"
    // });
    
    function removeCookie(key, ops={}){
        // setCookie(key, null, {
        //     path: ops.path ? ops.path : "",
        //     expires:-1
        // })
            
        // ops要么为空对象，要么对象中有path键
        // 只要再增加一个expires的键，值为-1，即可
        ops.expires = -1;
        setCookie(key, null, ops);
    }


</script>
</html>